package db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.example.apptodo.Todo;

public class SimpleDatabaseHelper extends SQLiteOpenHelper {

	static final private String DBNAME = "todos";
	static final private int VERSION = 2;
	
	final private String SQL_CREATE_TODOS = 
		"create table todos (" +
		"id integer primary key, " +
		"action text, year integer, " +
		"month integer, " +
		"day integer, " +
		"hour integer, " +
		"minute integer)";

	public SimpleDatabaseHelper(Context context) {
		super(context, DBNAME, null, VERSION);
	}
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		//	テーブルを定義する
		db.execSQL(SQL_CREATE_TODOS);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		//	テーブルを削除する
		db.execSQL("drop table if exists todos");
		//	テーブルを再定義する
		onCreate(db);
	}
	
	public long insert(Todo todo) {
		SQLiteDatabase db = this.getWritableDatabase();
		//	テーブルに新しいレコードを追加する
		long newId = db.insert(
				"todos", 
				null, 
				todo.toContentValues());
		db.close();
		return newId;
	}
	
	public int delete(Todo todo) {
		SQLiteDatabase db = this.getWritableDatabase();
		//	テーブルから該当するレコードを削除する
		int cnt = db.delete(
				"todos", 
				"id=?", 
				new String[] {String.valueOf(todo.getId())});
		db.close();
		return cnt;
	}
	
	public int update(Todo todo) {
		SQLiteDatabase db = this.getWritableDatabase();
		//	テーブルの該当するレコードを更新する
		int cnt = db.update(
				"todos", 
				todo.toContentValues(),
				"id=?", 
				new String[] {String.valueOf(todo.getId())});
		db.close();
		return cnt;
	}
}
